package main

import (
	"github.com/gin-gonic/gin"
	"net/http"
)

func main() {

	// 创建一个默认的路由引擎
	r := gin.Default()

	// HTTP重定向
	// HTTP 重定向很容易。 内部、外部重定向均支持。
	r.GET("/test", func(c *gin.Context) {
		c.Redirect(http.StatusMovedPermanently, "http://www.baidu.com/")
	})

	// 路由重定向
	// 路由重定向，使用HandleContext
	r.GET("/test1", func(c *gin.Context) {
		// 指定重定向的URL
		c.Request.URL.Path = "/test2"
		r.HandleContext(c)
	})

	r.GET("/test2", func(c *gin.Context) {
		c.JSON(http.StatusOK, gin.H{
			"hello":         "world",
			"HandleContext": "test1 to test2",
		})
	})

	// 匹配所有请求方法的Any方法
	r.Any("/Any", func(c *gin.Context) {
		c.JSON(http.StatusOK, gin.H{"Message": "Any"})
	})

	// 404页面定义
	r.NoRoute(func(c *gin.Context) {
		//c.HTML(http.StatusNotFound, "views/404.html", nil)
		c.JSON(http.StatusNotFound, gin.H{"Message": "404"})
	})

	// 启动HTTP服务，默认在0.0.0.0:8080启动服务
	r.Run()

}
